Data Context এবং Data Template

Microsoft Technologies - ডব্লিউপিএফ (WPF) - Data Binding এবং MVVM Pattern
263

WPF (Windows Presentation Foundation) অ্যাপ্লিকেশন তৈরি করার সময় Data Context এবং Data Template খুবই গুরুত্বপূর্ণ ভূমিকা পালন করে। এগুলো ডেটা-বাইন্ডিং প্যাটার্নের অংশ এবং এগুলোর সাহায্যে আপনি ইউজার ইন্টারফেস (UI) এবং ডেটার মধ্যে সম্পর্ক স্থাপন করতে পারেন। এই দুটি উপাদান আপনাকে UI উপাদানগুলোর ডেটা প্রদর্শন করতে এবং কাস্টমাইজড লেআউট প্রদান করতে সহায়তা করে।


Data Context

Data Context WPF এর ডেটা বাইন্ডিং সিস্টেমের একটি গুরুত্বপূর্ণ ধারণা। এটি একটি UI উপাদান (যেমন, একটি TextBox, Button, বা ListBox) এর ডেটা সোর্সকে নির্ধারণ করে। অর্থাৎ, Data Context সেট করলে, ওই UI উপাদান এবং তার সমস্ত সন্তানের উপাদানগুলোর ডেটা সোর্স একযোগভাবে কাজ করবে।

Data Context এর কাজ (Purpose of Data Context)

  • Data Context একটি নির্দিষ্ট ডেটা সোর্স নির্ধারণ করে, যাতে UI উপাদানগুলি তার সাথে ডেটা বাইন্ড করতে পারে।
  • এটি কেবল একটি UI উপাদানেই সীমাবদ্ধ থাকে না, বরং যদি সেটি কোনও কন্টেইনার (যেমন Grid, StackPanel, Window) এর মধ্যে থাকে, তবে তার সমস্ত চাইল্ড কন্ট্রোলের জন্য প্রযোজ্য হয়।
  • Binding এর মাধ্যমে ডেটা একটি UI উপাদান থেকে অন্য উপাদানে পাঠানো হয়, যা Data Context এর সাহায্যে সহজ হয়ে যায়।

Data Context সেট করা (Setting Data Context)

XAML এর মধ্যে, আপনি Data Context নির্ধারণ করতে পারেন Window, Page, বা অন্য কোনো কন্ট্রোলের DataContext প্রপার্টি ব্যবহার করে।

Data Context সেট করার উদাহরণ:

<Window x:Class="WPFApplication.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Data Context Example" Height="350" Width="525">
    <Window.DataContext>
        <local:Person Name="John Doe" Age="30" />
    </Window.DataContext>

    <Grid>
        <TextBlock Text="{Binding Name}" HorizontalAlignment="Center" VerticalAlignment="Top" />
        <TextBlock Text="{Binding Age}" HorizontalAlignment="Center" VerticalAlignment="Center" />
    </Grid>
</Window>

এখানে, DataContext হিসাবে Person অবজেক্ট নির্ধারণ করা হয়েছে, এবং TextBlock গুলি Name এবং Age প্রপার্টি থেকে ডেটা বাইন্ড করছে।

Data Context এর বৈশিষ্ট্য (Characteristics of Data Context)

  • Inherited:
    Data Context অভ্যন্তরীণ উপাদানগুলিতে স্বয়ংক্রিয়ভাবে উত্তরাধিকারসূত্রে প্রযোজ্য হয়। যদি আপনি Window বা Grid এর Data Context সেট করেন, তবে এর সমস্ত চাইল্ড উপাদান সেটি ব্যবহার করতে পারে।
  • নির্বাচনযোগ্য (Selectable):
    আপনি Data Context হিসেবে যে কোনো অবজেক্ট ব্যবহার করতে পারেন, যেমন একটি Class, Collection, ObservableCollection, বা অন্য কোনো ডেটা সোর্স।

Data Template

Data Template WPF এ একটি UI উপাদানকে কাস্টমাইজ করার জন্য ব্যবহৃত হয় যা একটি নির্দিষ্ট ডেটা প্রকার (Data Type) বা ক্লাসের জন্য UI তৈরি করে। এটি Data Binding এর সাহায্যে, নির্দিষ্ট ডেটার জন্য কাস্টম UI ডিজাইন করতে সহায়তা করে।

Data Template এর কাজ (Purpose of Data Template)

  • Data Template একটি নির্দিষ্ট ডেটা টাইপের জন্য UI কাস্টমাইজ করতে ব্যবহৃত হয়। এর মাধ্যমে আপনি ডেটার উপর ভিত্তি করে UI উপাদানগুলির লেআউট এবং ডিজাইন নির্ধারণ করতে পারেন।
  • এটি ItemsControl, ListBox, ComboBox বা অন্য কোনো কন্ট্রোলের মাধ্যমে ডেটা উপস্থাপনার জন্য ব্যবহৃত হয়।

Data Template উদাহরণ (Data Template Example)

ধরা যাক, আপনি একটি Person ক্লাসের একটি তালিকা প্রদর্শন করতে চান, যেখানে প্রতিটি Person এর নাম এবং বয়স দেখানো হবে। আপনি DataTemplate ব্যবহার করে কাস্টম UI ডিজাইন করতে পারেন।

Person ক্লাস:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

XAML DataTemplate উদাহরণ:

<Window x:Class="WPFApplication.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Data Template Example" Height="350" Width="525">
    <Window.DataContext>
        <local:Person Name="John Doe" Age="30" />
    </Window.DataContext>

    <ListBox>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <TextBlock Text="{Binding Name}" FontSize="20" />
                    <TextBlock Text="{Binding Age}" FontSize="16" />
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Window>

এখানে, DataTemplate ব্যবহার করে একটি ListBox এর জন্য কাস্টম UI ডিজাইন করা হয়েছে। প্রতিটি Person অবজেক্টের নাম এবং বয়স TextBlock উপাদান হিসেবে প্রদর্শিত হবে।

Data Template এর বৈশিষ্ট্য (Characteristics of Data Template)

  • Custom UI:
    আপনি DataTemplate এর মধ্যে কাস্টম UI উপাদান ব্যবহার করতে পারেন, যেমন TextBlock, Button, Image, ইত্যাদি।
  • Data Binding:
    DataTemplate এর মধ্যে আপনি Binding ব্যবহার করে ডেটা সোর্সের প্রপার্টি থেকে UI উপাদানগুলোকে বাইন্ড করতে পারেন।
  • ItemsControl এর মধ্যে ব্যবহার:
    সাধারণত ItemsControl, ListBox, ComboBox বা ListView এর মধ্যে DataTemplate ব্যবহৃত হয়, যেখানে একাধিক ডেটা উপাদান প্রদর্শন করা হয়।

Data Context এবং Data Template এর মধ্যে সম্পর্ক (Relationship Between Data Context and Data Template)

  • Data Context নির্ধারণ করে যে কোন ডেটা UI উপাদানগুলির সাথে বাইন্ড হবে।
  • Data Template তখন নির্ধারণ করে যে, ডেটা উপাদানটি UI তে কিভাবে প্রদর্শিত হবে।

এভাবে, Data Context এবং Data Template একসাথে কাজ করে, যা UI এবং ডেটার মধ্যে সুষম সম্পর্ক তৈরি করতে সাহায্য করে। DataContext ডেটার সোর্স দেয় এবং DataTemplate সেই ডেটার উপস্থাপনা নির্ধারণ করে।


সারাংশ (Summary)

  • Data Context WPF এর ডেটা বাইন্ডিং সিস্টেমে একটি UI উপাদান বা কন্টেইনারের জন্য ডেটা সোর্স নির্ধারণ করে।
  • Data Template একটি কাস্টম UI উপাদান তৈরি করে যা ডেটার ভিত্তিতে UI প্রদর্শন করে।
  • Data Context এবং Data Template একত্রে ব্যবহার করা হলে, WPF অ্যাপ্লিকেশনের ডেটা এবং UI উপাদানগুলির মধ্যে সম্পর্ক স্থাপন করা সহজ এবং কার্যকর হয়।
Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...